#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/6/29 23:06
# @USER    : Shengji He
# @File    : KthLargestElementInArray.py
# @Software: PyCharm
# @Version  : Python-
# @TASK:
from typing import List


class Solution:
    def findKthLargest(self, nums: List[int], k: int) -> int:
        """
        Find the kth largest element in an unsorted array. Note that it is the kth largest element in the
        sorted order, not the kth distinct element.

        Example 1:
            Input: [3,2,1,5,6,4] and k = 2

            Output: 5
        Example 2:
            Input: [3,2,3,1,2,4,5,5,6] and k = 4

            Output: 4
        Note:
            - You may assume k is always valid, 1 ≤ k ≤ array's length.

        :param nums:
        :param k:
        :return:
        """
        if k < 1 or k > len(nums):
            return -1
        nums.sort()
        return nums[- k]


if __name__ == '__main__':
    S = Solution()
    nums = [3, 2, 3, 1, 2, 4, 5, 5, 6]
    k = 4
    # nums = [3, 2, 1, 5, 6, 4]
    # k = 2
    print(S.findKthLargest(nums, k))
    print('done')
